package com.xcl.mapper;

import com.xcl.pojo.Debt;
import com.zzg.entity.Finance;
import com.zzg.entity.Financing;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @ClassName DebtMapper
 * @Description 欠款核销数据访问层
 * @Author: xiaochaolei
 * @date 2021/7/29 8:55
 * @Version 1. 0
 */
@Mapper
public interface DebtMapper {
    /**
     * 查询所有的运单欠款
     * @param consignDate 托运日期
     * @param tms_name 操作员
     * @param forwardingUnit 欠款人单位
     * @param sub_id 分站
     * @param verification 是否核销
     * @return list类型的欠款
     */
    public List<Debt> getAllDebtOne(
            @Param(value = "consignDate")String consignDate,
            @Param(value = "tms_name")String tms_name,
            @Param(value = "forwardingUnit")String forwardingUnit,
            @Param(value = "sub_id") String sub_id,
            @Param(value = "verification")String verification
    );
    /**
     * 查询所有的外包欠款
     * @param consignDate 托运日期
     * @param tms_name 操作员
     * @param forwardingUnit 欠款人单位
     * @param sub_id 分站
     * @param verification 是否核销
     * @return list类型的欠款
     */
    public List<Debt> getAllDebtTwo(
            @Param(value = "consignDate")String consignDate,
            @Param(value = "tms_name")String tms_name,
            @Param(value = "forwardingUnit")String forwardingUnit,
            @Param(value = "sub_id") String sub_id,
            @Param(value = "verification")String verification
    );
    /**
     * 查询所有的派送欠款
     * @param consignDate 托运日期
     * @param tms_name 操作员
     * @param forwardingUnit 欠款人单位
     * @param sub_id 分站
     * @param verification 是否核销
     * @return list类型的欠款
     */
    public List<Debt> getAllDebtThree(
            @Param(value = "consignDate")String consignDate,
            @Param(value = "tms_name")String tms_name,
            @Param(value = "forwardingUnit")String forwardingUnit,
            @Param(value = "sub_id") String sub_id,
            @Param(value = "verification")String verification
    );


    /**
     * 分页查询运单欠款 多条件查询
     * @param page 页码数
     * @param limit 条目数
     * @param consignDate 托运日期
     * @param tms_name 操作员
     * @param forwardingUnit 欠款人单位
     * @param sub_id 分站
     * @param verification 是否核销
     * @return list类型的欠款类型
     */
    public  List<Debt> getAllDebtOneByLimit(
            @Param(value = "page") int page,
            @Param(value = "limit") int limit,
            @Param(value = "consignDate")String consignDate,
            @Param(value = "tms_name")String tms_name,
            @Param(value = "forwardingUnit")String forwardingUnit,
            @Param(value = "sub_id") String sub_id,
            @Param(value = "verification")String verification
    );

    /**
     * 查询所有的外包欠款
     * @param page 页码数
     * @param limit 条目数
     * @param consignDate 托运日期
     * @param tms_name 操作员
     * @param forwardingUnit 欠款人单位
     * @param sub_id 分站
     * @param verification 是否核销
     * @return list类型的欠款
     */
    public  List<Debt> getAllDebtTwoeByLimit(
            @Param(value = "page") int page,
            @Param(value = "limit") int limit,
            @Param(value = "consignDate")String consignDate,
            @Param(value = "tms_name")String tms_name,
            @Param(value = "forwardingUnit")String forwardingUnit,
            @Param(value = "sub_id") String sub_id,
            @Param(value = "verification")String verification
    );


    /**
     * 查询所有的派送欠款
     * @param page 页码数
     * @param limit 条目数
     * @param consignDate 托运日期
     * @param tms_name 操作员
     * @param forwardingUnit 欠款人单位
     * @param sub_id 分站
     * @param verification 是否核销
     * @return list类型的欠款
     */
    public  List<Debt> getAllDebtThreeByLimit(
            @Param(value = "page") int page,
            @Param(value = "limit") int limit,
            @Param(value = "consignDate")String consignDate,
            @Param(value = "tms_name")String tms_name,
            @Param(value = "forwardingUnit")String forwardingUnit,
            @Param(value = "sub_id") String sub_id,
            @Param(value = "verification")String verification
    );

    /**
     * 根据财务id修改状态
     * @param id 财务id
     * @return 影响行数
     */
    public int updateVerification(@Param(value = "id") String id);

    /**
     * 根据id查询财务信息
     * @param id 财务id
     * @return 财务信息
     */
    public Finance getFinancingById(@Param(value = "id") String id);
}
